import pandas as pd


def split_data(
    csv_file,
    output_folder,
):
    # 读取CSV文件
    df = pd.read_csv(csv_file)

    # 获取列数
    num_columns = len(df.columns)

    # 计算需要分割的列数。取接近16384的整数。
    num_split = int(num_columns / 16384) + (num_columns % 16384 > 0)

    # 分割数据并写入Excel文件
    for i in range(0, num_split):
        # 创建DataFrame并保存到Excel文件
        split_df = df.iloc[:, i * 16384 : (i + 1) * 16384]
        split_df.to_excel(f"{output_folder}/split_data_{i}.xlsx", index=False)


def get_path_before_last_backslash(path):
    # rstrip()函数将从右侧删除所有反斜杠字符
    return path.rsplit("\\", 1)[0]


if __name__ == "__main__":
    # 修改文件路径
    file_path_str = input("请将要处理的文件直接拖进来：")
    file_path_str = file_path_str.strip("\"")
    data_csv = pd.read_csv(file_path_str, sep=",")
    # 获取结果xlsx路径
    out_path = get_path_before_last_backslash(file_path_str)

    # 调用函数，传入CSV文件路径和输出文件夹路径
    split_data(file_path_str, out_path)
    # 将数据写入到XLSX文件，修改文件路径
    # xlsx_file = r"C:\Users\louyr\Desktop\新建文件夹\239845346_1.xlsx"
    # selected_data.to_excel(xlsx_file, index=False)

    print("数据已成功写入!")
